package com.layblog.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.layblog.es.search.common.mq.LayPostMqIndexMessage;
import com.layblog.es.search.model.LayPostDocument;
import com.layblog.vo.PostVO;

import java.util.List;

/**
 * Layblog搜索服务类
 *
 * @Author 林必昭
 * @Date 2021/9/7 11:31
 */
public interface ElasticSearchService {

    /**
     * 按关键字搜索
     *
     * @author: jacklin
     * @date: 2022/8/11 15:26
     **/
    IPage<LayPostDocument> query(Page page, String q);

    /**
     * 初始化数据dataList到ES
     *
     * @author: jacklin
     * @date: 2022/8/11 15:26
     **/
    int initEsData(List<PostVO> dataList);

    /**
     * 初MySQL始化数据到ES
     *
     * @author: jacklin
     * @date: 2022/8/11 15:26
     **/
    void initMySQLData2Es();

    /**
     * 文章发表消息
     *
     * @author: jacklin
     * @date: 2022/8/11 16:34
     **/
    void createIndex(LayPostMqIndexMessage message);

    /**
     * 文章编辑更新消息
     *
     * @author: jacklin
     * @date: 2022/8/11 16:35
     **/
    void updateIndex(LayPostMqIndexMessage message);

    /**
     * 文章删除消息
     *
     * @author: jacklin
     * @date: 2022/8/11 16:35
     **/
    void removeIndex(LayPostMqIndexMessage message);
}
